#ifndef _PROTOCOL_H_
#define _PROTOCOL_H_

namespace protocol
{
	class login
	{
	public:
		enum
		{
			IdentifyUserReq		=	30,
			IdentifyUserAck,
		};
	};
	class community
	{
	public:
		enum
		{
			EchoReq				=	98,
			EchoAck				=	99,

			CreateChannelReq,
			EnterChannelReq,
			EnterChannelAck,

			DestoryChannelReq,
			LeaveChannelReq,
			LeaveChannelAck,

			EnterLobbyReq,
			EnterLobbyAck,

			ChannelListReq,

			AddChannelAck,		//	broadcast
			RemoveChannelAck,	//	broadcast
			AddUserAck,			//	broadcast
			RemoveUserAck,		//	broadcast

			ChatInfoReq,
			ChatInfoAck,

			ReadyReq,
			ReadyAck,

			ChangeMasterReq,
			ChangeMasterAck,

			KickOutReq,
			KickOutAck,

		};
	};
	class game
	{
	public:
		enum
		{
			StartGameReq	=	200,
			StartGameAck,
			StartedGameReq,
			StartedGameAck,
		};
	};
};

namespace error
{
	enum
	{
		No_Error		=	0
	};
	class channel
	{
	public:
		enum
		{
			Aleady_Insert		=	100,
			Insert_Failed,
			No_Exist_User,
			No_Exist_Channel,
			Empty_Channel,
			Impossible_Make_Channel,
			Full_Channel,
			Fail_Enter_No_Lobby,
		};
	};
};

#endif